package model

const (
	TaskCDSeg = "CD"
	TaskSSeg  = "Seg"
	TaskPDet  = "PDet"
	TaskDet   = "Det"
)

//推理信息
type ProdInfo struct {
	Image     string `bson:"image"` //图片的MD5编码
	Label     string `bson:"label"`
	ImageData string `bson:"image_data"` //原图的base64字符串
}

//InferApi请求消息
type InferRequest struct {
	Task   string `json:"task" from:"task" binding:"required"`
	ImageA string `json:"img_a" from:"img_a" binding:"required"` //图片的base64编码
	ImageB string `json:"img_b" from:"img_b"`                    //图片的base64编码
}

//返回给客户端的信息
type ClientResponse struct {
	Image string  `json:"image"` //输入图片的md5码
	Code  int     `json:"code"`  //状态码
	Prod  string  `json:"prod"`  //预测图
	Time  float32 `json:"time"`  //aip处理时长
	Err   string  `json:"err"`   //错误信息
}

//InferApi请求结果
type InferResponse struct {
	Code  int     `json:"code"`  //状态码
	Prod  string  `json:"prod"`  //预测图
	Label string  `json:"label"` //标签(未处理，用于存入数据库中)
	Time  float32 `json:"time"`  //api处理时长
	Err   string  `json:"err"`   //错误信息
}

//后处理参数
type PostParams struct {
	Task     string      `json:"task" from:"task" binding:"required"`
	Image    string      `json:"image" from:"image" binding:"required"`
	Postfunc string      `json:"postfunc" from:"postfunc" binging:"required"`
	Param    interface{} `json:"param" from:"param"`
}

//后处理Api请求消息
type PostRequest struct {
	Task     string      `json:"task" from:"task" binding:"required"`
	Label    string      `json:"label" from:"label" binging:"required"`
	Image    string      `json:"image" from:"image" binging:"required"`
	Postfunc string      `json:"postfunc" from:"postfunc" binging:"required"`
	Param    interface{} `json:"param" from:"param"`
}

//后处理Api返回结果
type PostResponse struct {
	Code int     `json:"code"` //状态码
	Prod string  `json:"prod"` //预测图
	Time float32 `json:"time"` //api处理时长
	Err  string  `json:"err"`  //错误信息
}
